home *** CD-ROM | disk | FTP | other *** search
/ This Disc Bytes! / Power Computing - The Disc 2 - This Disc Bytes.ISO / mac / CodeWarrior 7 Lite for 68K / MacOS Support / Headers / Universal Headers / HyperXCmd.h < prev    next >
Text File  |  1994-02-04  |  11KB  |  294 lines

  1. /*
  2.      File:        HyperXCmd.h
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7. */
  8.  
  9. #ifndef __HYPERXCMD__
  10. #define __HYPERXCMD__
  11.  
  12.  
  13. #ifndef __TYPES__
  14. #include <Types.h>
  15. #endif
  16. /*    #include <ConditionalMacros.h>                                */
  17.  
  18. #ifndef __EVENTS__
  19. #include <Events.h>
  20. #endif
  21. /*    #include <Quickdraw.h>                                        */
  22. /*        #include <MixedMode.h>                                    */
  23. /*            #include <Traps.h>                                    */
  24. /*        #include <QuickdrawText.h>                                */
  25. /*            #include <IntlResources.h>                            */
  26. /*    #include <OSUtils.h>                                        */
  27.  
  28. #ifndef __TEXTEDIT__
  29. #include <TextEdit.h>
  30. #endif
  31.  
  32. #ifndef __MENUS__
  33. #include <Menus.h>
  34. #endif
  35.  
  36. #ifndef __STANDARDFILE__
  37. #include <StandardFile.h>
  38. #endif
  39. /*    #include <Dialogs.h>                                        */
  40. /*        #include <Windows.h>                                    */
  41. /*            #include <Controls.h>                                */
  42. /*    #include <Files.h>                                            */
  43. /*        #include <SegLoad.h>                                    */
  44.  
  45. /* result codes */
  46. enum {
  47.     xresSucc    =    0,
  48.     xresFail    =    1,
  49.     xresNotImp    =    2
  50. };
  51.  
  52. /* XCMDBlock constants for event.what... */
  53. enum {
  54.     xOpenEvt                = 1000,    /* the first event after you are created */
  55.     xCloseEvt                = 1001,    /* your window is being forced close (Quit?) */
  56.     xGiveUpEditEvt            = 1002,    /* you are losing Edit... */
  57.     xGiveUpSoundEvt            = 1003,    /* you are losing the sound channel... */
  58.     xHidePalettesEvt        = 1004,    /* someone called HideHCPalettes */
  59.     xShowPalettesEvt        = 1005,    /* someone called ShowHCPalettes */
  60.     xEditUndo                = 1100,    /* Edit——Undo */
  61.     xEditCut                = 1102,    /* Edit——Cut */
  62.     xEditCopy                = 1103,    /* Edit——Copy */
  63.     xEditPaste                = 1104,    /* Edit——Paste */
  64.     xEditClear                = 1105,    /* Edit——Clear */
  65.     xSendEvt                = 1200,    /* script has sent you a message (text) */
  66.     xSetPropEvt                = 1201,    /* set a window property */
  67.     xGetPropEvt                = 1202,    /* get a window property */
  68.     xCursorWithin            = 1300,    /* cursor is within the window */
  69.     xMenuEvt                = 1400,    /* user has selected an item in your menu */
  70.     xMBarClickedEvt            = 1401,    /* a menu is about to be shown--update if needed */
  71.  
  72.     xShowWatchInfoEvt        = 1501,    /* for variable and message watchers */
  73.     xScriptErrorEvt            = 1502,    /* place the insertion point */
  74.     xDebugErrorEvt            = 1503,    /* user clicked "Debug" at a complaint */
  75.     xDebugStepEvt            = 1504,    /* hilite the line */
  76.     xDebugTraceEvt            = 1505,    /* same as step but tracing */
  77.     xDebugFinishedEvt        = 1506    /* script ended */
  78. };
  79.  
  80. enum {
  81.     paletteProc                = 2048,    /* Windoid with grow box */
  82.     palNoGrowProc            = 2052,    /* standard Windoid defproc */
  83.     palZoomProc                = 2056,    /* Windoid with zoom and grow */
  84.     palZoomNoGrow            = 2060,    /* Windoid with zoom and no grow */
  85.     hasZoom                    = 8,
  86.     hasTallTBar                = 2,
  87.     toggleHilite            = 1
  88. };
  89.  
  90. enum {
  91.     /* paramCount is set to these constants when first calling special XThings */
  92.     xMessageWatcherID         = -2,
  93.     xVariableWatcherID         = -3,
  94.     xScriptEditorID         = -4,
  95.     xDebuggerID             = -5,
  96.  
  97.     /* XTalkObjectPtr->objectKind values */
  98.     stackObj                 = 1,
  99.     bkgndObj                 = 2,
  100.     cardObj                 = 3,
  101.     fieldObj                 = 4,
  102.     buttonObj                 = 5
  103. };
  104.  
  105. /* maximum number of checkpoints in a script */
  106. #define    maxCachedChecks     16
  107.  
  108. typedef struct XCmdBlock *XCmdPtr;
  109.  
  110. #if defined(powerc) || defined (__powerc)
  111. #pragma options align=mac68k
  112. #endif
  113. struct XCmdBlock {
  114.     short                            paramCount;                    /* If = -1 then new use for XWindoids */
  115.     Handle                            params[16];
  116.     Handle                            returnValue;
  117.     Boolean                            passFlag;
  118.     Ptr                                entryPoint;                    /* to call back to HyperCard */
  119.     short                            request;
  120.     short                            result;
  121.     long                            inArgs[8];
  122.     long                            outArgs[4];
  123. };
  124. #if defined(powerc) || defined(__powerc)
  125. #pragma options align=reset
  126. #endif
  127.  
  128. typedef struct XWEventInfo *XWEventInfoPtr;
  129.  
  130. #if defined(powerc) || defined (__powerc)
  131. #pragma options align=mac68k
  132. #endif
  133. struct XWEventInfo {
  134.     EventRecord                        event;
  135.     WindowPtr                        eventWindow;
  136.     long                            eventParams[9];
  137.     Handle                            eventResult;
  138. };
  139. #if defined(powerc) || defined(__powerc)
  140. #pragma options align=reset
  141. #endif
  142.  
  143. typedef struct XTalkObject *XTalkObjectPtr;
  144.  
  145. #if defined(powerc) || defined (__powerc)
  146. #pragma options align=mac68k
  147. #endif
  148. struct XTalkObject {
  149.     short                            objectKind;                    /* stack, bkgnd, card, field, or button */
  150.     long                            stackNum;                    /* reference number of the source stack */
  151.     long                            bkgndID;
  152.     long                            cardID;
  153.     long                            buttonID;
  154.     long                            fieldID;
  155. };
  156. #if defined(powerc) || defined(__powerc)
  157. #pragma options align=reset
  158. #endif
  159.  
  160. typedef struct CheckPts *CheckPtPtr;
  161.  
  162. typedef CheckPtPtr *CheckPtHandle;
  163.  
  164. #if defined(powerc) || defined (__powerc)
  165. #pragma options align=mac68k
  166. #endif
  167. struct CheckPts {
  168.     short                            checks[maxCachedChecks];
  169. };
  170. #if defined(powerc) || defined(__powerc)
  171. #pragma options align=reset
  172. #endif
  173.  
  174.  
  175. #ifdef __cplusplus
  176. extern "C" {
  177. #endif
  178.  
  179. /****  HyperTalk Utilities  ****/
  180.  
  181. extern pascal Handle EvalExpr(XCmdPtr paramPtr, StringPtr expr);
  182. extern pascal void SendCardMessage(XCmdPtr paramPtr, StringPtr msg);
  183. extern pascal void SendHCMessage(XCmdPtr paramPtr, StringPtr msg);
  184. extern pascal void RunHandler(XCmdPtr paramPtr, Handle handler);
  185.  
  186. /****  Memory Utilities  ****/
  187.  
  188. extern pascal Handle GetGlobal(XCmdPtr paramPtr, StringPtr globName);
  189. extern pascal void SetGlobal(XCmdPtr paramPtr, StringPtr globName, Handle globValue);
  190. extern pascal void ZeroBytes(XCmdPtr paramPtr, Ptr dstPtr, long longCount);
  191.  
  192. /****  String Utilities  ****/
  193.  
  194. extern pascal void ScanToReturn(XCmdPtr paramPtr, Ptr *scanPtr);
  195. extern pascal void ScanToZero(XCmdPtr paramPtr, Ptr *scanPtr);
  196. extern pascal Boolean StringEqual(XCmdPtr paramPtr, StringPtr str1, StringPtr str2);
  197. extern pascal long StringLength(XCmdPtr paramPtr, Ptr strPtr);
  198. extern pascal Ptr StringMatch(XCmdPtr paramPtr, StringPtr pattern, Ptr target);
  199. extern pascal void ZeroTermHandle(XCmdPtr paramPtr, Handle hndl);
  200.  
  201. /****  String Conversions  ****/
  202.  
  203. extern pascal void BoolToStr(XCmdPtr paramPtr, Boolean bool, StringPtr str);
  204. extern pascal void ExtToStr(XCmdPtr paramPtr, extended80 num, StringPtr str);
  205. extern pascal void LongToStr(XCmdPtr paramPtr, long posNum, StringPtr str);
  206. extern pascal void NumToHex(XCmdPtr paramPtr, long num, short nDigits, StringPtr str);
  207. extern pascal void NumToStr(XCmdPtr paramPtr, long num, StringPtr str);
  208. extern pascal Handle PasToZero(XCmdPtr paramPtr, StringPtr str);
  209. extern pascal void PointToStr(XCmdPtr paramPtr, Point pt, StringPtr str);
  210. extern pascal void RectToStr(XCmdPtr paramPtr, Rect *rct, StringPtr str);
  211. extern pascal void ReturnToPas(XCmdPtr paramPtr, Ptr zeroStr, StringPtr pasStr);
  212. extern pascal Boolean StrToBool(XCmdPtr paramPtr, StringPtr str);
  213. extern pascal extended80 StrToExt(XCmdPtr paramPtr, StringPtr str);
  214. extern pascal long StrToLong(XCmdPtr paramPtr, StringPtr str);
  215. extern pascal long StrToNum(XCmdPtr paramPtr, StringPtr str);
  216. extern pascal void StrToPoint(XCmdPtr paramPtr, StringPtr str, Point *pt);
  217. extern pascal void StrToRect(XCmdPtr paramPtr, StringPtr str, Rect *rct);
  218. extern pascal void ZeroToPas(XCmdPtr paramPtr, Ptr zeroStr, StringPtr pasStr);
  219.  
  220. /****  Field Utilities  ****/
  221.  
  222. extern pascal Handle GetFieldByID(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID);
  223. extern pascal Handle GetFieldByName(XCmdPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName);
  224. extern pascal Handle GetFieldByNum(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldNum);
  225. extern pascal void SetFieldByID(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID, Handle fieldVal);
  226. extern pascal void SetFieldByName(XCmdPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName, Handle fieldVal);
  227. extern pascal void SetFieldByNum(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldNum, Handle fieldVal);
  228. extern pascal TEHandle GetFieldTE(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID, short fieldNum, StringPtr fieldNamePtr);
  229. extern pascal void SetFieldTE(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID, short fieldNum, StringPtr fieldNamePtr, TEHandle fieldTE);
  230.  
  231. /****  Miscellaneous Utilities  ****/
  232.  
  233. extern pascal void BeginXSound(XCmdPtr paramPtr, WindowPtr window);
  234. extern pascal void EndXSound(XCmdPtr paramPtr);
  235. extern pascal Boolean GetFilePath(XCmdPtr paramPtr, StringPtr fileName, short numTypes, SFTypeList typeList, Boolean askUser, OSType *fileType, StringPtr fullName);
  236. extern pascal void GetXResInfo(XCmdPtr paramPtr, short *resFile, short *resID, ResType *rType, StringPtr name);
  237. extern pascal void Notify(XCmdPtr paramPtr);
  238. extern pascal void SendHCEvent(XCmdPtr paramPtr, EventRecord *event);
  239. extern pascal void SendWindowMessage(XCmdPtr paramPtr, WindowPtr windPtr, StringPtr windowName, Handle msg);
  240. extern pascal WindowPtr FrontDocWindow(XCmdPtr paramPtr);
  241. extern pascal long StackNameToNum(XCmdPtr paramPtr, StringPtr stackName);
  242. extern pascal short ShowHCAlert(XCmdPtr paramPtr, short dlgID, StringPtr promptStr);
  243.  
  244. /****  Creating and Disposing XWindoids  ****/
  245.  
  246. extern pascal WindowPtr NewXWindow(XCmdPtr paramPtr, Rect *boundsRect, StringPtr title, Boolean visible, short procID, Boolean color, Boolean floating);
  247. extern pascal WindowPtr GetNewXWindow(XCmdPtr paramPtr, ResType templateType, short templateID, Boolean color, Boolean floating);
  248. extern pascal void CloseXWindow(XCmdPtr paramPtr, WindowPtr window);
  249.  
  250. /****  XWindoid Utilities  ****/
  251.  
  252. extern pascal void HideHCPalettes(XCmdPtr paramPtr);
  253. extern pascal void ShowHCPalettes(XCmdPtr paramPtr);
  254. extern pascal void RegisterXWMenu(XCmdPtr paramPtr, WindowPtr window, MenuHandle menu, Boolean registering);
  255. extern pascal void SetXWIdleTime(XCmdPtr paramPtr, WindowPtr window, long interval);
  256. extern pascal void XWHasInterruptCode(XCmdPtr paramPtr, WindowPtr window, Boolean haveCode);
  257. extern pascal void XWAlwaysMoveHigh(XCmdPtr paramPtr, WindowPtr window, Boolean moveHigh);
  258. extern pascal void XWAllowReEntrancy(XCmdPtr paramPtr, WindowPtr window, Boolean allowSysEvts, Boolean allowHCEvts);
  259.  
  260. /****  Text Editing Utilities  ****/
  261.  
  262. extern pascal void BeginXWEdit(XCmdPtr paramPtr, WindowPtr window);
  263. extern pascal void EndXWEdit(XCmdPtr paramPtr, WindowPtr window);
  264. extern pascal Ptr HCWordBreakProc(XCmdPtr paramPtr);
  265. extern pascal void PrintTEHandle(XCmdPtr paramPtr, TEHandle hTE, StringPtr header);
  266.  
  267. /****  Script Editor support  ****/
  268.  
  269. extern pascal CheckPtHandle GetCheckPoints(XCmdPtr paramPtr);
  270. extern pascal void SetCheckPoints(XCmdPtr paramPtr, CheckPtHandle checkLines);
  271. extern pascal void FormatScript(XCmdPtr paramPtr, Handle scriptHndl, long *insertionPoint, Boolean quickFormat);
  272. extern pascal void SaveXWScript(XCmdPtr paramPtr, Handle scriptHndl);
  273. extern pascal void GetObjectName(XCmdPtr paramPtr, XTalkObjectPtr object, StringPtr objName);
  274. extern pascal void GetObjectScript(XCmdPtr paramPtr, XTalkObjectPtr object, Handle *scriptHndl);
  275. extern pascal void SetObjectScript(XCmdPtr paramPtr, XTalkObjectPtr object, Handle scriptHndl);
  276.  
  277. /****  Debugging Tools support  ****/
  278.  
  279. extern pascal void AbortScript(XCmdPtr paramPtr);
  280. extern pascal void GoScript(XCmdPtr paramPtr);
  281. extern pascal void StepScript(XCmdPtr paramPtr, Boolean stepInto);
  282. extern pascal void CountHandlers(XCmdPtr paramPtr, short *handlerCount);
  283. extern pascal void GetHandlerInfo(XCmdPtr paramPtr, short handlerNum, StringPtr handlerName, StringPtr objectName, short *varCount);
  284. extern pascal void GetVarInfo(XCmdPtr paramPtr, short handlerNum, short varNum, StringPtr varName, Boolean *isGlobal, StringPtr varValue, Handle varHndl);
  285. extern pascal void SetVarValue(XCmdPtr paramPtr, short handlerNum, short varNum, Handle varHndl);
  286. extern pascal Handle GetStackCrawl(XCmdPtr paramPtr);
  287. extern pascal void TraceScript(XCmdPtr paramPtr, Boolean traceInto);
  288.  
  289. #ifdef __cplusplus
  290. }
  291. #endif
  292.  
  293. #endif /* __HYPERXCMD__ */
  294.